package SQLite3;

public class Stmt
{
  protected int error_code = 0;
  private long handle = 0L;
  protected String[] mColumns = null;
  
  static {}
  
  private static native void internal_init();
  
  public native void bind(int paramInt)
    throws Exception;
  
  public native void bind(int paramInt, double paramDouble)
    throws Exception;
  
  public native void bind(int paramInt1, int paramInt2)
    throws Exception;
  
  public native void bind(int paramInt, long paramLong)
    throws Exception;
  
  public native void bind(int paramInt, String paramString)
    throws Exception;
  
  public native void bind(int paramInt, byte[] paramArrayOfByte)
    throws Exception;
  
  public native int bind_parameter_count()
    throws Exception;
  
  public native int bind_parameter_index(String paramString)
    throws Exception;
  
  public native String bind_parameter_name(int paramInt)
    throws Exception;
  
  public native void bind_zeroblob(int paramInt1, int paramInt2)
    throws Exception;
  
  public native void clear_bindings()
    throws Exception;
  
  public native void close()
    throws Exception;
  
  public Object column(int paramInt)
    throws Exception
  {
    Object localObject;
    switch (column_type(paramInt))
    {
    default: 
      localObject = null;
    }
    for (;;)
    {
      return localObject;
     // localObject = Long.valueOf(column_long(paramInt));
      //continue;
     // localObject = Double.valueOf(column_double(paramInt));
     // continue;
    //  localObject = column_bytes(paramInt);
     // continue;
    //  localObject = column_string(paramInt);
    }
  }
  
  public native byte[] column_bytes(int paramInt)
    throws Exception;
  
  public native int column_count()
    throws Exception;
  
  public native String column_database_name(int paramInt)
    throws Exception;
  
  public native String column_decltype(int paramInt)
    throws Exception;
  
  public native double column_double(int paramInt)
    throws Exception;
  
  public int column_index(String paramString)
  {
    String[] arrayOfString = column_names();
    int i = arrayOfString.length;
    int j = 0;
    if (j < i) {
      if (!paramString.equals(arrayOfString[j])) {}
    }
    for (;;)
    {
      return j;
     // j++;
     // break;
     // j = -1;
    }
  }
  
  public native int column_int(int paramInt)
    throws Exception;
  
  public native long column_long(int paramInt)
    throws Exception;
  
  public native String column_name(int paramInt)
    throws Exception;
  
  public String[] column_names()
  {
//    if (this.mColumns == null)
//    {
//      int i = 0;
//      try
//      {
//       // j = column_count();
//       // i = j;
//      }
//      catch (Exception localException1)
//      {
////        try
////        {
//////          for (;;)
//////          {
//////          //  int j;
//////           // this.mColumns[j] = column_name(j);
//////          //  j++;
//////          }
//////          localException1 = localException1;
//////          localException1.printStackTrace();
////        }
////        catch (Exception localException2)
////        {
//////          for (;;)
//////          {
//////            localException2.printStackTrace();
//////          }
////        }
//      }
//      this.mColumns = new String[i];
//     // j = 0;
//     // if (j >= i) {}
//    }
    return this.mColumns;
  }
  
  public native String column_origin_name(int paramInt)
    throws Exception;
  
  public native String column_string(int paramInt)
    throws Exception;
  
  public native String column_table_name(int paramInt)
    throws Exception;
  
  public native int column_type(int paramInt)
    throws Exception;
  
  protected native void finalize();
  
  public MatrixCursor get_cursor()
  {
    return get_cursor(20);
  }
  
  public MatrixCursor get_cursor(int paramInt)
  {
//    localMatrixCursor = new MatrixCursor(column_names(), paramInt);
    try
    {
      int i = column_count();
      while (step())
      {
        Object[] arrayOfObject = new Object[i];
        for (paramInt = 0; paramInt < i; paramInt++) {
          arrayOfObject[paramInt] = column_string(paramInt);
        }
//        localMatrixCursor.addRow(arrayOfObject);
      }
//      return localMatrixCursor;
      return null;
    }
    catch (Exception localException)
    {
      localException.printStackTrace();
    }
    return null;
  }
  
  public native boolean prepare()
    throws Exception;
  
  public native void reset()
    throws Exception;
  
  public native int status(int paramInt, boolean paramBoolean);
  
  public native boolean step()
    throws Exception;
}
